package com.ftg.learn.chapter03;

import javax.swing.*;

/**
 * 学习逻辑运算符
 *
 * @author kangjx
 * @date 2022/12/12
 */
public class LearnLogic {

//    [public] [static] [返回] [名称 ](参数列表){
//        return ;
//    }

//    逻辑与  在生活 就是并且   左(表达式 true|false) && 右(表达式 true|false)
//	&&
//            。并且关系（真真为真）。短路与，左侧为假，后面不执行，直接返回
//	&
//    非短路与，执行所有表达式

    public static void learnYu() {
        //true && true 同真为真  一假为假
        System.out.println("   与  ");
        System.out.println(true && true);
        System.out.println(true && false);

        // && 短路与  如果你能推断出来  哪一个最有可能为假，那么要写在前面
        int a = 9;

        System.out.println(a++  >9 & a++ < 3);
        System.out.println(a);

        System.out.println(a++ == 9 && a++ < 3);
        System.out.println(a);

        System.out.println("   或   ");
        // 一真为真  全假为假
        System.out.println( true || true );
        System.out.println( true || false );
        System.out.println( false || false );

        int b = 13;
        System.out.println(b++ == 13 || b++ < 3);
        System.out.println(b);

        System.out.println("非");
        System.out.println(!true);

        System.out.println(!(2>3));

        System.out.println("异或");
        // 不同为真  相同为假
        System.out.println(true ^ false);
        System.out.println(true ^ true);
        System.out.println(false ^ true);
        System.out.println(false ^ false);


//        == [基本类型当中 判断字面上的值是否等 ,引用类型的值是一段内存 (itern)]
//        .equals()
//        <>  sql 不等 !=
        //javascript Ecmascript
//        ===  绝对相等  !== 绝对不相等

    }

    /**
     * 学习位
     */
    public static void learnBit(){
        //原数扩大 一倍
        System.out.println( 16 << 1 );
        System.out.println( 16 << 2 );
        //原数缩小一倍
        System.out.println( 16 >> 1 );
        System.out.println( 13 >> 1 );

        // 线性表 原长度 + 原长度向右称动一位

        System.out.println("位运算里面的与或非");

        System.out.println(2 | 3);
        System.out.println(2 & 3);
        System.out.println(2 ^ 3);
//        00010
//        00011

    }

    /**
     * 这叫主方法
     *
     * @param args
     */
    public static void main(String[] args) {
        learnBit();
    }

}
